home *** CD-ROM | disk | FTP | other *** search
- /*
- File: MoreControls.h
-
- Contains:
-
- Written by: Pete Gontier
-
- Copyright: Copyright (c) 1998-1999 Apple Computer, Inc., All Rights Reserved.
-
- You may incorporate this Apple sample source code into your program(s) without
- restriction. This Apple sample source code has been provided "AS IS" and the
- responsibility for its operation is yours. You are not permitted to redistribute
- this Apple sample source code as "Apple sample source code" after having made
- changes. If you're going to re-distribute the source, we require that you make
- it clear in the source that the code was descended from Apple sample source
- code, but that you've made changes.
-
- Change History (most recent first):
-
- <5> 2/11/99 PCG Carbon d7
- <4> 2/9/99 PCG more TARGET_CARBON
- <3> 1/25/99 PCG TARGET_CARBON
- <2> 11/11/98 PCG fix headers
- <1> 11/10/98 PCG first big re-org at behest of Quinn
-
- Old Change History (most recent first):
-
- <7> 10/11/98 Quinn Convert "MorePrefix.h" to "MoreSetup.h".
- <6> 10/29/98 PCG various
- <5> 9/9/98 PCG re-work import and export pragmas
- <4> 9/1/98 PCG Universal Headers 3.2
- <3> 7/24/98 PCG coddle linker (C++, CFM-68K)
- <2> 7/24/98 PCG eliminate dependency on 'qd'
- <2> 6/23/98 PCG add IsScrollBar
- <1> 6/16/98 PCG initial checkin
- */
-
- #pragma once
-
- #include "MoreSetup.h"
-
- #include <Controls.h>
- #include <Lists.h>
-
- #if TARGET_CARBON
- # include <ControlDefinitions.h>
- #endif
-
- enum
- {
- //////////////////////////////////////////////////////////////////
- //
- // resource IDs of CDEFs (control definition proc resources)
- //
- //////////////////////////////////////////////////////////////////
-
- kControlOldButtonDefProcResID,
- kControlOldScrollBarDefProcResID,
- kControlBevelButtonDefProcResID,
- kControlSliderDefProcResID,
- kControlTriangleDefProcResID,
- kControlProgressBarDefProcResID,
- kControlLittleArrowsDefProcResID,
- kControlChasingArrowsDefProcResID,
- kControlTabsDefProcResID,
- kControlSeparatorLineDefProcResID,
- kControlGroupBoxDefProcResID,
- kControlImageWellDefProcResID,
- kControlPopupArrowDefProcResID,
- kControlUnluckyDefProcResID,
- kControlPlacardDefProcResID,
- kControlClockDefProcResID,
- kControlUserPaneDefProcResID,
- kControlEditTextDefProcResID,
- kControlStaticTextDefProcResID,
- kControlPictureDefProcResID,
- kControlIconDefProcResID,
- kControlWindowHeaderDefProcResID,
- kControlListBoxDefProcResID,
- kControlPushButtonDefProcResID,
- kControlScrollBarDefProcResID,
- kControlPopupButtonDefProcResID,
- kControlRadioGroupDefProcResID,
- kControlOldPopupMenuDefProcResID = 63
- };
-
- enum
- {
- //////////////////////////////////////////////////////////////////
- //
- // resource type for individual control font style record
- //
- //////////////////////////////////////////////////////////////////
-
- kMoreControls_ControlStyleType = FOUR_CHAR_CODE('cfsr')
- };
-
- enum
- {
- //////////////////////////////////////////////////////////////////
- //
- // gap between controls and from edges of the parent window
- //
- //////////////////////////////////////////////////////////////////
-
- MoreControls_kControlGap = (3 + 1) // 3 for focus, 1 for white space
- };
-
- enum
- {
- //////////////////////////////////////////////////////////////////
- //
- // alignments for AlignControl and AlignSubControls
- //
- //////////////////////////////////////////////////////////////////
-
-
- MoreControls_kAlignSystem,
- MoreControls_kAlignLeft,
- MoreControls_kAlignCenter,
- MoreControls_kAlignRight
- };
-
- typedef UInt8 MoreControls_tAlignment;
-
- enum
- {
- //////////////////////////////////////////////////////////////////
- //
- // directions for MoveControlNear and SetControlQuadrant
- //
- //////////////////////////////////////////////////////////////////
-
- MoreControls_kDirectionNorthWest,
- MoreControls_kDirectionNorth,
- MoreControls_kDirectionNorthEast,
- MoreControls_kDirectionWest,
- MoreControls_kDirectionCenter,
- MoreControls_kDirectionEast,
- MoreControls_kDirectionSouthWest,
- MoreControls_kDirectionSouth,
- MoreControls_kDirectionSouthEast
- };
-
- typedef UInt8 MoreControls_tDirection;
-
- //////////////////////////////////////////////////////////////////
- //
- // tab control stuff for Appearance 1.0.1 or later
- //
- //////////////////////////////////////////////////////////////////
-
- #if UNIVERSAL_INTERFACES_VERSION < 0x0310
-
- enum
- {
- kControlTabInfoTag = 'tabi' /* ControlTabInfoRec*/
- };
-
-
- enum {
- kControlTabInfoVersionZero = 0
- };
-
- struct ControlTabInfoRec {
- SInt16 version; /* version of this structure.*/
- SInt16 iconSuiteID; /* icon suite to use. Zero indicates no icon*/
- Str255 name; /* name to be displayed on the tab*/
- };
- typedef struct ControlTabInfoRec ControlTabInfoRec;
-
- #endif // UNIVERSAL_INTERFACES_VERSION < 0x0310
-
- //////////////////////////////////////////////////////////////////
- //
- // finally, the function prototypes
- //
- //////////////////////////////////////////////////////////////////
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #pragma import on // for clients
- #pragma export on // for building a library
-
- pascal OSStatus OffsetControl (ControlHandle, SInt16 h, SInt16 v);
- pascal OSStatus InsetControl (ControlHandle, SInt16 h, SInt16 v);
- pascal OSStatus ExpandControl (ControlHandle);
- pascal OSStatus EncloseSubControls (ControlHandle);
- pascal OSStatus AlignControl (ControlHandle anchor, ControlHandle, MoreControls_tAlignment);
- pascal OSStatus AlignSubControls (ControlHandle, MoreControls_tAlignment);
- pascal OSStatus SetBestControlRect (ControlHandle, SInt16 *baseLineOffset);
- pascal OSStatus MoveControlNear (ControlHandle moveMe, ControlHandle near, MoreControls_tDirection);
- pascal OSStatus SetControlQuadrant (ControlHandle, MoreControls_tDirection);
- pascal OSStatus MoreFindControlUnderMouse (Point, WindowRef, ControlPartCode *, ControlHandle *);
-
- pascal OSStatus GetListBoxControlListHandle (ControlHandle, ListHandle *);
- pascal OSStatus GetStaticTextControlTextHeight (ControlHandle, SInt16 *);
-
- pascal OSStatus SetUserPaneTrackingProc (ControlHandle, ControlUserPaneTrackingUPP);
- pascal OSStatus SetUserPaneDrawProc (ControlHandle, ControlUserPaneDrawUPP);
- pascal OSStatus SetUserPaneSetUpSpecialBackgroundProc (ControlHandle, ControlUserPaneBackgroundUPP);
-
- pascal OSStatus SetBevelButtonMenu (ControlHandle, MenuRef);
- pascal OSStatus SetBevelButtonMenuDelay (ControlHandle, SInt32);
-
- pascal OSStatus SetProgressBarIndeterminate (ControlHandle, Boolean);
-
- pascal OSStatus SetPopUpButtonMenu (ControlHandle, MenuRef);
-
- pascal OSStatus Get1NewControl (short resID, WindowRef, ControlHandle *);
- pascal OSStatus Get1NewStaticTextControl (short resID, WindowRef, ControlHandle *);
- pascal OSStatus Get1NewPopupButtonControl (short resID, WindowRef, ControlHandle *);
-
- pascal OSStatus InvalControl (ControlHandle);
- pascal OSStatus ValidControl (ControlHandle);
-
- pascal OSStatus CopyTabFontStyle (ControlHandle oldTabs, ControlHandle newTabs);
- pascal OSStatus ToggleControl (ControlHandle);
- pascal OSStatus SetCursorAccordingToControl (void);
- pascal OSStatus GetControlDefProcResID (ControlHandle, short *);
- pascal OSStatus MoreGetControlRegion (ControlHandle, RgnHandle *);
- pascal OSStatus SetControlTextFromResource (ControlHandle, short textResID);
- pascal OSStatus SetControlTextStyleFromResource (ControlHandle, short styleResID);
-
- pascal OSStatus InsertTab (ControlHandle, ControlHandle *, UInt16 before);
- pascal OSStatus RemoveTab (ControlHandle, ControlHandle *, UInt16 which);
- pascal OSStatus SetTabIcon (ControlHandle, ControlPartCode, short iconSuiteID);
- pascal OSStatus AppendTabs (ControlHandle, UInt16);
- pascal OSStatus TruncateTabs (ControlHandle, UInt16);
-
- pascal OSStatus IsScrollBar (ControlHandle, Boolean *);
-
- pascal OSStatus IdleControlsInAllWindows (void);
-
- pascal OSStatus ActivateControls (WindowPtr);
- pascal OSStatus DeactivateControls (WindowPtr);
-
- #pragma import reset // for clients
- #pragma export reset // for building a library
-
- #ifdef __cplusplus
- }
- #endif
-
- #if !TARGET_CARBON
- # define GetControlDefinition(x) ((**(x)).contrlDefProc)
- # define GetControlOwner(x) ((**(x)).contrlOwner)
- # define GetControlDataHandle(x) ((**(x)).contrlData)
- # define GetControlBounds(x,r) do { *(r) = (**(x)).contrlRect; } while (false)
- #endif
-